package club.controller;

import club.pojo.Blog;
import club.service.BlogService;
import club.util.Message;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;


@Controller
@RequestMapping("/blog")
public class BlogController {

    @Resource
    private BlogService blogService;

    /**
     * 分页查询博客列表
     * @param actionTime 操作时间（可选，用于筛选）
     * @param pageNum 页码
     * @return 包含分页信息的操作结果消息
     */
    @RequestMapping("/blogs")
    @ResponseBody
    public Message blogs(String actionTime, @RequestParam("pn") Integer pageNum) {
        if (pageNum == null) {
            pageNum = 1;
        }
        System.out.println(actionTime);
        // 打印操作时间（可能用于调试）
        // 调用服务层获取分页数据，根据操作时间筛选
        PageInfo<Blog> allBlog = blogService.findAllBlog(actionTime, pageNum, 3);
        return Message.success().add("pageInfo", allBlog);
    }

    /**
     * 创建新博客
     * @param blog 博客对象
     * @return 操作结果消息
     */
    @RequestMapping("/create")
    @ResponseBody
    public Message creat(Blog blog) {
        int i = blogService.add(blog);
        if (i > 0) {
            return Message.success();
        } else {
            return Message.fail();
        }
    }

    /**
     * 更新博客信息
     * @param blog 包含更新信息的博客对象
     * @return 操作结果消息
     */
    @RequestMapping("/update")
    @ResponseBody
    public Message update(Blog blog) {
        int i = blogService.updateBlog(blog);
        if (i > 0) {
            return Message.success();
        } else {
            return Message.fail();
        }
    }

    /**
     * 删除博客
     * @param id 博客ID
     * @return 操作结果消息
     */
    @RequestMapping("/delete")
    @ResponseBody
    public Message delete(Integer id) {
        int i = blogService.del(id);
        if (i > 0) {
            return Message.success();
        } else {
            return Message.fail();
        }
    }

    /**
     * 根据ID查找博客
     * @param id 博客ID
     * @return 包含博客信息的操作结果消息
     */
    @RequestMapping("/findById")
    @ResponseBody
    public Message findById(Integer id) {
        Blog blog = blogService.findById(id);
        // 调用服务层查找博客
        return Message.success().add("blog", blog);
    }
}